package tech.eyao.hs60x.service;

import java.util.List;

import tech.eyao.hs60x.dto.BaseResult;
import tech.eyao.hs60x.model.domain.AccountDO;
import tech.eyao.hs60x.model.domain.AccountRelationDO;

public interface AccountRelationService {
		
	

	/**
	 * 绑定手表
	 * @param accountRelationDO
	 * @return
	 */
	public boolean insert(AccountRelationDO accountRelationDO);

	/**
	 * 获取手表绑定信息
	 * @param wacthAccountId
	 * @return
	 */
	public AccountRelationDO getAccountAdminByWatchId(Long wacthAccountId);

	/**
	 * 绑定设备列表
	 * @param userId
	 * @return
	 */
	public List<AccountRelationDO> getAccountRelationByAccountId(long userId);
	
	/**
	 * 绑定设备
	 * @param wacthAccountId
	 * @param userId
	 * @param nickName
	 * @return
	 */
	public BaseResult bindWatch(String relationName, Long userId, int bindType,String bindRemark,AccountDO deviceAccountDO);
	
	/**
	 * 解绑设备
	 * @param watchId
	 * @param userId
	 * @return
	 */
	public BaseResult unbindWatch(Long watchId, long userId);
	
	/**
	 * 转让管理员
	 * @param friendId
	 * @return
	 */
	public BaseResult setWatchAdmin(long userId, long watchId ,long friendId, String nickName);
	
	/**
	 * 通讯录查询
	 * @param userId
	 * @param watchId
	 * @return
	 */
	public BaseResult findFriends(long userId, long watchId);

	/**
	 * 全部好友列表（分组）
	 * @param userId
	 * @param watchId
	 * @return
	 */
	public BaseResult findAllFriends(long userId, long watchId);
	/**
	 * 校验用户是否管理员角色
	 * @param userId
	 * @return
	 */
	public Boolean checkUserIsAdmin(long userId);
	
	/**
	 * del
	 * @param userId
	 * @param accountId
	 * @param watchId
	 * @return
	 */
	public BaseResult delete(long userId, long accountId, long watchId);

	/**
	 * add
	 * @param userId
	 * @param watchId
	 * @param friendId
	 * @return
	 */
	public BaseResult addAddressBook(long userId, long watchId, String avatarUrl, String nickName, String phone);
	
	/**
	 * 是否绑定
	 * @param userId
	 * @param watchId
	 * @return
	 */
	public boolean isBindWatch(long userId, long watchId);
	
	/**
	 * 修改手表联系人
	 * @param userId
	 * @param watchId
	 * @param historyPhone
	 * @param avatarUrl
	 * @param nickName
	 * @param modifyPhone
	 * @return
	 */
	public BaseResult modifyAddressBook(long userId, long watchId, String historyPhone,String avatarUrl, String nickName,String modifyPhone);
}
